(function() {
    "use strict";

    /**
     * @ngdoc directive
     * @name webApp.directive:cellpicker
     * @description
     * # cellpicker
     */

    //动态状态查询
    var dallstatus = {
        extrOrderStatuTab: {
            name: "extrOrderStatu",
            type: "static",
            data: [{
                    id: "All",
                    name: "所有",
                    en: "All",
                    order: 1
                },
                {
                    id: "S_ORDER_WAIT_PAYMENT",
                    name: "待支付",
                    en: "S_ORDER_WAIT_PAYMENT",
                    order: 2
                },
                {
                    id: "S_ORDER_WAIT_DELIVERY",
                    name: "待发货",
                    en: "S_ORDER_WAIT_DELIVERY",
                    order: 4
                },
                {
                    id: "S_ORDER_WAIT_RECEIVE",
                    name: "待收货",
                    en: "S_ORDER_WAIT_RECEIVE",
                    order: 5
                },
                {
                    id: "S_ORDER_WAIT_RATE",
                    name: "待评价",
                    en: "S_ORDER_WAIT_RATE",
                    order: 6
                },
                {
                    id: "S_ORDER_COMPLETED",
                    name: "已完成",
                    en: "S_ORDER_COMPLETED",
                    order: 7
                },
                {
                    id: "S_ORDER_CANCEL",
                    name: "已作废",
                    en: "S_ORDER_CANCEL",
                    order: 10
                }
            ]
        },
        settlementTab: {
            name: "settlement",
            type: "static",
            data: [{
                    id: "All",
                    name: "所有",
                    en: "All",
                    order: 1
                },
                {
                    id: "S_ORDER_WAIT_PAYMENT",
                    name: "待支付",
                    en: "S_ORDER_WAIT_PAYMENT",
                    order: 2
                },
                {
                    id: "S_ORDER_WAIT_CONFIRM",
                    name: "待确认",
                    en: "S_ORDER_WAIT_CONFIRM",
                    order: 3
                },
                {
                    id: "S_ORDER_WAIT_DELIVERY",
                    name: "待发货",
                    en: "S_ORDER_WAIT_DELIVERY",
                    order: 4
                },
                {
                    id: "S_ORDER_WAIT_RECEIVE",
                    name: "待收货",
                    en: "S_ORDER_WAIT_RECEIVE",
                    order: 5
                },
                {
                    id: "S_ORDER_WAIT_RATE",
                    name: "待评价",
                    en: "S_ORDER_WAIT_RATE",
                    order: 6
                },
                {
                    id: "S_ORDER_COMPLETED",
                    name: "已完成",
                    en: "S_ORDER_COMPLETED",
                    order: 7
                },
                {
                    id: "S_ORDER_AFTER_SERVICE",
                    name: "售后中",
                    en: "S_ORDER_AFTER_SERVICE",
                    order: 8
                },
                {
                    id: "S_ORDER_ALREADY_REFUNDED",
                    name: "已经退款",
                    en: "S_ORDER_ALREADY_REFUNDED",
                    order: 9
                },
                {
                    id: "S_ORDER_CANCEL",
                    name: "已作废",
                    en: "S_ORDER_CANCEL",
                    order: 10
                }
            ]
        },
        printTypeTab: {
            name: "print",
            type: "static",
            data: [{
                    id: "express",
                    name: "物流",
                    en: "Express",
                    order: 1
                },
                {
                    id: "xiaopao",
                    name: "小票",
                    en: "xiaopao",
                    order: 2
                }
            ]
        },
        itemTab: {
            name: "item",
            type: "static",
            data: [{
                    id: "1",
                    name: "上架",
                    en: "1",
                    order: 1
                },
                {
                    id: "0",
                    name: "下架",
                    en: "0",
                    order: 0
                }
            ]
        },
        downloaditemsMainTab: {
            name: "ownloaditems",
            type: "static",
            data: [{
                    id: "2",
                    name: "允许子门店分销的商品",
                    en: "bd",
                    order: 1
                },
                {
                    id: "1",
                    name: "+添加",
                    en: "qb",
                    order: 2
                }
            ]
        },
        downloaditemsSubTab: {
            name: "ownloaditems",
            type: "static",
            data: [{
                    id: "2",
                    name: "分销的商品",
                    en: "bd",
                    order: 1
                },
                {
                    id: "1",
                    name: "+添加",
                    en: "qb",
                    order: 2
                }
            ]
        },
        tongjiTab: {
            name: "tongji",
            type: "static",
            data: [{
                    id: "payment",
                    name: "支付单统计",
                    en: "payment",
                    order: 1
                },
                {
                    id: "wxapp",
                    name: "小程序统计",
                    en: "wxapp",
                    order: 2
                }
            ]
        },
        roleTypeTab: {
            name: "roletab",
            type: "static",
            data: [{
                    id: "2",
                    name: "选择菜单",
                    en: "caidan",
                    order: 2
                },
                {
                    id: "3",
                    name: "权限1",
                    en: "quanxian",
                    order: 3
                },
                {
                    id: "4",
                    name: "附加权限",
                    en: "fujia权限",
                    order: 4
                },
                {
                    id: "5",
                    name: "分配员工",
                    en: "分配员工",
                    order: 5,
                }
            ]
        },
        kfTypeTab: {
            name: "kftab",
            type: "static",
            data: [{
                    id: "1",
                    name: "文本",
                    en: "text",
                    order: 1
                },
                {
                    id: "2",
                    name: "图片",
                    en: "img",
                    order: 2
                },
                {
                    id: "3",
                    name: "语音",
                    en: "Voice",
                    order: 3
                },
                //  {
                //     id: "4",
                //     name: "视频",
                //     en: "Video",
                //     order: 4,
                // },
                {
                    id: "5",
                    name: "小程序",
                    en: "app",
                    order: 5
                }
            ]
        },
        wsTuiwenTab: {
            name: "wxtuiwen",
            type: "static",
            data: [{
                    id: "sucai",
                    name: "图文素材",
                    en: "Express",
                    order: 1
                },
                {
                    id: "xiaoxi",
                    name: "图文消息内的图片",
                    en: "xiaoxi",
                    order: 2
                }
            ]
        },
        adminlayoutTab: {
            name: "amlayout",
            type: "static",
            data: [{
                id: "home",
                name: "首页",
                en: "home",
                order: 1
            }]
        },
        wxapptempleTab: {
            name: "wxapptemple",
            type: "static",
            data: [{
                    id: "1",
                    name: "草稿",
                    en: "caogao",
                    order: 1
                },
                {
                    id: "2",
                    name: "模板",
                    en: "zhengshi",
                    order: 2
                }
            ]
        },
        layoutTab: {
            name: "layout",
            type: "static",
            data: [{
                    id: "home",
                    name: "首页",
                    en: "home",
                    order: 1
                },
                {
                    id: "detail",
                    name: "详情",
                    en: "detail",
                    order: 2
                },
                {
                    id: "cat",
                    name: "分类",
                    en: "cat",
                    order: 3
                },
                {
                    id: "page",
                    name: "活动",
                    en: "page",
                    order: 4
                },
                {
                    id: "kanjia",
                    name: "砍价",
                    en: "kanjia",
                    order: 5
                },
                {
                    id: "config",
                    name: "其他设置",
                    en: "config",
                    order: 6
                },
                {
                    id: "huodongindex",
                    name: "报名详情",
                    en: "activityindex",
                    order: 7
                },
                {
                    id: "huodongadd",
                    name: "报名表单",
                    en: "activityadd",
                    order: 8
                },
                {
                    id: "home1",
                    name: "自定义1",
                    en: "home1",
                    order: 9
                },
                {
                    id: "home2",
                    name: "自定义2",
                    en: "home2",
                    order: 10
                },
                {
                    id: "home3",
                    name: "自定义3",
                    en: "home3",
                    order: 11
                },
                {
                    id: "home4",
                    name: "自定义4",
                    en: "home4",
                    order: 12
                },
                {
                    id: "home5",
                    name: "自定义5",
                    en: "home5",
                    order: 13
                },
                {
                    id: "home6",
                    name: "自定义6",
                    en: "home6",
                    order: 14
                },
                {
                    id: "home7",
                    name: "自定义7",
                    en: "home7",
                    order: 15
                },
                {
                    id: "home8",
                    name: "自定义8",
                    en: "home8",
                    order: 16
                },
                {
                    id: "home9",
                    name: "自定义9",
                    en: "home9",
                    order: 17
                },
                {
                    id: "home10",
                    name: "自定义10",
                    en: "home10",
                    order: 18
                }
            ]
        },
        miniTab: {
            name: "mini",
            type: "static",
            data: [{
                    id: "ministore",
                    name: "小店",
                    en: "ministore",
                    order: 1
                },
                {
                    id: "ministoreadd",
                    name: "创建小店页",
                    en: "ministoreadd",
                    order: 2
                }
            ]
        },
        printTmpTab: {
            name: "printTmp",
            type: "static",
            data: [{
                    id: "1",
                    name: "普通模板",
                    en: "pttmp",
                    order: 1
                },
                {
                    id: "2",
                    name: "小票模板",
                    en: "xptmp",
                    order: 7
                }
            ]
        },
        storeappsTab: {
            name: "storeapps",
            type: "static",
            data: [{
                    id: "guanlian",
                    name: "已关联的小程序",
                    en: "guanlian",
                    order: 1
                },
                {
                    id: "wguanlian",
                    name: "未关联的小程序",
                    en: "wguanlian",
                    order: 2
                }
            ]
        },
        authorizationTab: {
            name: "authorization",
            type: "static",
            data: [{
                    id: "ziji",
                    name: "授权自己的小程序",
                    en: "ziji",
                    order: 1
                },
                {
                    id: "isv",
                    name: "授权网站提供的小程序",
                    en: "isv",
                    order: 2
                },
                {
                    id: "guanlian",
                    name: "已经关联的小程序",
                    en: "guanlian",
                    order: 3
                }
            ]
        },
        wxgzhTab: {
            name: "wxgzh",
            type: "static",
            data: [{
                    id: "news",
                    name: "图文消息",
                    en: "news",
                    order: 1
                },
                {
                    id: "image",
                    name: "图片",
                    en: "image",
                    order: 2
                },
                {
                    id: "voice",
                    name: "语音",
                    en: "voice",
                    order: 3
                },
                {
                    id: "video",
                    name: "视频",
                    en: "video",
                    order: 4
                }
            ]
        },
        basicTab: {
            name: "basic",
            type: "static",
            data: [{
                    id: "periodst",
                    name: "周期设置",
                    en: "periodst",
                    order: 1
                },
                {
                    id: "timeslotstl",
                    name: "时段设置",
                    en: "timeslotstl",
                    order: 2
                }
            ]
        },
        newbasicTab: {
            name: "newbasic",
            type: "static",
            data: [{
                    id: "periodst",
                    name: "按周配置",
                    en: "periodst",
                    order: 1
                },
                {
                    id: "timeslotstl",
                    name: "按天配置",
                    en: "timeslotstl",
                    order: 2
                }
            ]
        },
        fxdetailTab: {
            name: "fxdetail",
            type: "static",
            data: [{
                    id: "All",
                    name: "所有",
                    en: "All",
                    order: 1
                },
                {
                    id: "weishenhe",
                    name: "未审核",
                    en: "weishenhe",
                    order: 2
                },
                {
                    id: "daijiesuan",
                    name: "待结算",
                    en: "daijiesuan",
                    order: 3
                },
                {
                    id: "yijiesuan",
                    name: "已结算",
                    en: "yijiesuan",
                    order: 4
                }
            ]
        },
        fxclearingTab: {
            name: "fxclearing",
            type: "static",
            data: [{
                    id: "all",
                    name: "所有",
                    en: "all",
                    order: 1
                },
                {
                    id: "daishenhe",
                    name: "待审核",
                    en: "daishenhe",
                    order: 2
                },
                {
                    id: "daizhifu",
                    name: "待支付",
                    en: "daizhifu",
                    order: 3
                },
                {
                    id: "yizhifu",
                    name: "已支付",
                    en: "yizhifu",
                    order: 4
                },
                {
                    id: "shougongyizhifu",
                    name: "手工已支付",
                    en: "shougongyizhifu",
                    order: 5
                },
                {
                    id: "yizuofei",
                    name: "已作废",
                    en: "yizuofei",
                    order: 6
                }
            ]
        },
        iconType: {
            name: "icondetail",
            type: "static",
            data: [{
                    id: 1,
                    name: "首页",
                    en: "home",
                    order: 1
                },
                {
                    id: 2,
                    name: "购物车",
                    en: "cart",
                    order: 2
                },
                {
                    id: 3,
                    name: "我的",
                    en: "home",
                    order: 3
                },
                {
                    id: 4,
                    name: "订单",
                    en: "order",
                    order: 4
                },
                {
                    id: 5,
                    name: "多人",
                    en: "pro",
                    order: 5
                },
                {
                    id: 6,
                    name: "分类",
                    en: "cat",
                    order: 6
                }
            ]
        },
        huodongDetailTab: {
            name: "huodongdetail",
            type: "static",
            data: [{
                    id: "all",
                    name: "所有",
                    en: "all",
                    order: 1
                },
                {
                    id: "weizhifu",
                    name: "未支付",
                    en: "weizhifu",
                    order: 2
                },
                {
                    id: "yizhifu",
                    name: "已支付",
                    en: "yizhifu",
                    order: 3
                },
                {
                    id: "yiqiandao",
                    name: "已签到",
                    en: "yizhifu",
                    order: 4
                },
                {
                    id: "zuofei",
                    name: "作废",
                    en: "zuofei",
                    order: 5
                }
            ]
        },
        fuwuOrderTab: {
            name: "fuwuOrderTab",
            type: "static",
            data: [{
                    id: "all",
                    name: "所有",
                    en: "all",
                    order: 1
                },
                {
                    id: "weizhifu",
                    name: "未支付",
                    en: "weizhifu",
                    order: 2
                },
                {
                    id: "yizhifu",
                    name: "已支付",
                    en: "yizhifu",
                    order: 3
                },
                {
                    id: "zuofei",
                    name: "作废",
                    en: "zuofei",
                    order: 4
                }
            ]
        },
        chongzhiTab: {
            name: "chongzhiTab",
            type: "static",
            data: [{
                    id: "zengjia",
                    name: "增加余额",
                    en: "zengjia",
                    order: 1
                },
                {
                    id: "jianshao",
                    name: "扣减余额",
                    en: "jianshao",
                    order: 2
                }
            ]
        },
        h5Tab: {
            name: "h5Tab",
            type: "static",
            data: [{
                    id: "0",
                    name: "全部",
                    en: "quanbu",
                    order: 0
                },
                {
                    id: "1",
                    name: "未核销",
                    en: "weihexiao",
                    order: 1
                },
                {
                    id: "2",
                    name: "已核销",
                    en: "yihexiao",
                    order: 2
                }
            ]
        },
        categoryTab: {
            name: "categoryTab",
            type: "capi",
            data: []
        },
        classdetailTab: {
            name: "classdetailTab",
            type: "static",
            data: [{
                    id: "1",
                    name: "预约",
                    en: "yuyue",
                    order: 1
                },
                {
                    id: "2",
                    name: "已上课",
                    en: "shangke",
                    order: 2
                },
                {
                    id: "3",
                    name: "取消",
                    en: "quexiao",
                    order: 3
                }
            ]
        },
        roomOrderTab: {
            name: "roomOrderTab",
            type: "static",
            data: [{
                    id: "All",
                    name: "所有",
                    en: "All",
                    order: 1
                },
                {
                    id: "S_ORDER_WAIT_PAYMENT",
                    name: "待支付",
                    en: "S_ORDER_WAIT_PAYMENT",
                    order: 2
                },
                {
                    id: "S_ORDER_WAIT_CONFIRM",
                    name: "待确认",
                    en: "S_ORDER_WAIT_CONFIRM",
                    order: 3
                },
                {
                    id: "S_ORDER_COMPLETED",
                    name: "已完成",
                    en: "S_ORDER_COMPLETED",
                    order: 4
                },
                {
                    id: "S_ORDER_CANCEL",
                    name: "已作废",
                    en: "S_ORDER_CANCEL",
                    order: 5
                }
            ]
        },
        msgNotifyTab: {
            name: "msgnotify",
            type: "static",
            data: [{
                    id: "sms",
                    name: "短信通知",
                    en: "sms",
                    order: 1
                },
                {
                    id: "template",
                    name: "模板消息",
                    en: "template",
                    order: 2
                }
            ]
        },
        webSiteTab: {
            name: "websitehome",
            type: "static",
            data: [{
                    id: "slider",
                    en: "slider",
                    name: "幻灯片",
                    order: 1
                },
                {
                    id: "cattree",
                    en: "cattree",
                    name: "目录树",
                    order: 2
                },
                {
                    id: "imagelinks",
                    en: "imagelinks",
                    name: "图片链接",
                    order: 3
                },
                {
                    id: "catlist",
                    en: "catlist",
                    name: "目录列表",
                    order: 4
                },
                {
                    id: "services",
                    en: "services",
                    name: "服务列表",
                    order: 5
                },
                {
                    id: "footer",
                    en: "footer",
                    name: "版权区",
                    order: 6
                },
                {
                    id: "xmodal",
                    en: "xmodal",
                    name: "弹窗提醒",
                    order: 7
                }
            ]
        },
        fzLogTab: {
            name: "fzlogtab",
            type: "static",
            data: [{
                    id: "1",
                    en: "1",
                    name: "微信订单",
                    order: 1
                },
                {
                    id: "2",
                    en: "2",
                    name: "银联订单",
                    order: 2
                },
                {
                    id: "3",
                    en: "3",
                    name: "未分账冻结订单",
                    order: 3
                },
                {
                    id: "4",
                    en: "4",
                    name: "新生订单",
                    order: 4
                }
            ]
        },
        fzLogTypeTab: {
            name: "fzLogTypeTab",
            type: "static",
            data: [{
                    id: "1",
                    en: "1",
                    name: "分账订单",
                    order: 1
                },
                {
                    id: "2",
                    en: "2",
                    name: "分销订单",
                    order: 2
                }
            ]
        },
        distributorTab: {
            name: "distributorTab",
            type: "static",
            data: [{
                    id: "0",
                    en: "0",
                    name: "所有",
                    order: 1
                },
                {
                    id: "1",
                    en: "1",
                    name: "未审核",
                    order: 2
                },
                {
                    id: "2",
                    en: "2",
                    name: "审核成功",
                    order: 3
                },
                {
                    id: "3",
                    en: "3",
                    name: "未通过审核",
                    order: 4
                }
            ]
        }
    };

    _.map(dallstatus, function(zstatus, dname) {
        angular.module("webApp").directive(dname, [
            "$timeout",
            "dataService",
            "$rootScope",
            function($timeout, dataService, $rootScope) {
                return {
                    restrict: "E",
                    require: "ngModel",
                    replace: true,
                    scope: {
                        ngModel: "=",
                        clickTab: "&"
                    },
                    template: '<ul class="sui-nav nav-tabs nav-large nav-primary"><li ng-repeat="a in allStatus track by a.id" style="margin-left:0px;" ng-class="{active:(chosedItem.value==a.value)}" style="pading-right:0px;padding-left:0px;" ng-click="doClickTab(a)"><a ng-href="{{a.url?a.url:\'javascript:;\'}}">{{lang ? a.name : (a.en|translate)}}</a></li></ul>',
                    controller: [
                        "$scope",
                        function($scope) {
                            $scope.lang = window.localStorage.lang == "zh-cn" ? true : false;
                            $scope.allStatus = {};

                            $scope.doClickTab = function(one) {
                                if ($scope.ngModel == one.value) {
                                    return;
                                }
                                $scope.ngModel = one.value;
                                $scope.chosedItem = one;
                                if ($scope.clickTab) {
                                    $timeout(function() {
                                        $scope.clickTab({
                                            data: one
                                        });
                                    });
                                }
                            };
                            //console.error("zstatus", zstatus);

                            function apiData() {
                                dataService.statusGet(zstatus.name).then(function(data) {
                                    if (!zstatus.hideall) {
                                        $scope.allStatus = {
                                            0: {
                                                id: "All",
                                                name: "所有",
                                                en: "All",
                                                value: "All"
                                            }
                                        };
                                    } else {
                                        $scope.allStatus = {};
                                    }

                                    _.map(data, function(v, k) {
                                        if (v.hide == 0) {
                                            $scope.allStatus[v.order] = {
                                                id: "" + v.status_en,
                                                name: v.status_cn,
                                                en: v.status_en,
                                                value: v.status_en
                                            };
                                        }
                                    });

                                    //console.log("----------", $scope.allStatus);
                                });
                            }

                            function capiData() {
                                $scope.store = $rootScope.store_id;
                                var query = {};
                                if ($scope.store) {
                                    query.query = {
                                        store_id: $scope.store
                                    };
                                    query.page_size = 100;
                                }
                                $scope.allStatus = {
                                    0: {
                                        id: "All",
                                        name: "所有",
                                        en: "All",
                                        value: "All"
                                    }
                                };
                                dataService.categoryGet(query).then(function(list) {
                                    // $scope.allStatus = {};

                                    if (list) {
                                        var listdata = list.itemcats;
                                        for (var i in listdata) {
                                            if (listdata[i].parent_cid !== 0) {
                                                $scope.allStatus[listdata[i].cid] = {
                                                    id: "" + listdata[i].cid,
                                                    name: listdata[i].name,
                                                    en: listdata[i].name,
                                                    value: listdata[i].cid
                                                };
                                            }
                                        }
                                    }
                                });
                                console.error("$scope.allStatus", $scope.allStatus);
                            }

                            function staticData() {
                                _.map(zstatus.data, function(v, k) {
                                    $scope.allStatus[v.order] = {
                                        id: "" + v.id,
                                        name: v.name,
                                        en: v.en,
                                        value: v.id,
                                        url: v.url
                                    };
                                });
                            }

                            if (zstatus.type == "api") {
                                apiData();
                            } else if (zstatus.type == "capi") {
                                capiData();
                            } else {
                                staticData();
                            }

                            $scope.setChosedItem = function(value, type) {
                                $scope.chosedItem = {};
                                _.map($scope.allStatus, function(a) {
                                    if (a.value == value) {
                                        $scope.chosedItem = a;
                                        $scope.doClickTab(a);
                                    }
                                });
                            };
                        }
                    ],
                    link: function(scope, element, attrs, ctrl) {
                        // scope.$watch('allStatus', function(n, o, b) {
                        //     scope.setChosedItem(ctrl.$viewValue);
                        // });
                        scope.$watch("ngModel", function(n, o, b) {
                            scope.setChosedItem(n);
                        });
                        //处理数据，得到想要 的数据
                        // ctrl.$render = function() {
                        //     scope.setChosedItem(ctrl.$viewValue, 1);
                        // };
                    }
                };
            }
        ]);
    });
})();

// S_ORDER_CANCEL         // 已作废
// S_ORDER_WAIT_PAYMENT   // 订单待支付
// S_ORDER_WAIT_CONFIRM   // 订单待确认
// S_ORDER_WAIT_DELIVERY  // 订单待发货
// S_ORDER_WAIT_RECEIVE   // 订单配送中,等待收货
// S_ORDER_WAIT_RATE      // 待评价
// S_ORDER_COMPLETED      // 订单完成